include "module.thrift"

namespace java com.to8to.thrift.diary.product
namespace php com.to8to.thrift.diary.product

    /** ========== 查询物品 ================================================ */
    
struct ListProductRequest{
    /** 查询条件字段 【必填】 可选值:【查询内容】中的字段名 */
    1:list<string> fields 
 
    /** *** 查询内容 *** */
    
    /** 现场相关 */
    
    /** 商品ID 【选填】 */
    6:list<string> _ids 
    /** 现场ID 【选填】 */
    7:list<string> scene_ids 
    /** 一级分类 【选填】 可选值:参见产品提供的1级分类列表 */
    8:i32 category_1 
    /** 二级分类 【选填】 可选值:参见产品提供的1级分类列表 */
    9:i32 category_2 

	/** 时间范围 【选填】*/
	10:module.TRange ctime_range 
    /** 11:string name //名字 【选填】 */
    
    /** 12:string brand //品牌 【选填】 */
    
    /** 13:string spec //规格 【选填】 */
    
    /** 14:string buy_from //购买地 【选填】 */
    
    /** 16:i32 platform // 【选填】 */
    
    /** 17:i32 source //这个字段是干什么的 */
    
    /** 18:list<string> category // 【选填】 */
    
    /** 19:i32 num //数量，默认为1 【选填】 */
    
    /** 20:double unit_price //单价 【选填】 */
    
    /** 21:double total_price //总价 【选填】 */
    
    /** 购买地名字 【选填】 直接输入购买地名字，与购买地_2对应 */
    22:string buy_from_name 
    /** 购买地_1 id 【选填】 购买地_id 1 */
    23:string buy_from_1 
    /** 购买地_2 id 【选填】 购买地_id 2 */
    24:string buy_from_2 
    /** 显示相关日记 【选填】 可选值:0:不显示，1:显示 */
    25:i32 show_diarys=0 
 
    /** 状态相关 */
    
    /** 状态 【选填】 */
    30:list<i32> status 
    /** 认为这个应当用统一枚举状态状态表示 【选填】 */
    31:list<i32> filter_results 
 
    /** 查询控制 */
    
    /** 排序字段 【必填】 */
    36:list<module.TSortField> sort 
    /** 【必填】 */
    37:i32 offset=0 
    /** 【必填】 */
    38:i32 limit=10 
    /** 跟踪字段 【选填】 前端需要跟踪时设置该字段 */
    40:string trace_tag 
}

struct ListProductResponse
{
    1:string res="succ"
    3:i32 total
    4:i32 offset
    5:i32 limit
    6:list<module.TProduct> results
    /** 跟踪字段 */
    10:string trace_tag 
}

    /** ========== 创建物品 ================================================ */
    
struct CreateProductRequest{
    /** 【选填】 只有为日记添加物品时才设置日记id */
    2:string diary_id 
    /** 【必填】 可选值:见【module.TProduct】中说明 */
    6:module.TProduct product 
    /** 是否是用户操作 */
    25:bool is_user_do = true 
    /** 跟踪字段 【选填】 前端需要跟踪时设置该字段 */
    30:string trace_tag 
}

    /** ========== 更新物品 ================================================ */
    
struct UpdateProductRequest{
    /** 商品ID 【必填】 */
    1:string _id 
    /** 操作字段 【必填】 可选值:【module.TProduct】中的字段名 */
    2:list<string> fields 
 
    /** 【必填】 可选值:见【module.TProduct】中说明 */
    6:module.TProduct product 

    /** 是否是用户操作 */
    25:bool is_user_do = true 
    /** 跟踪字段 【选填】 前端需要跟踪时设置该字段 */
    30:string trace_tag 
	
	/** 是否需要校验user_id和owner_id */
	7:i32 need_validate
	/** 用户id */
	8:string user_id
}

    /** ========== 删除物品 ================================================ */
    
struct DeleteProductRequest
{
    /** 【必填】 */
    1:list<string> _ids 
    /** 跟踪字段 【选填】 前端需要跟踪时设置该字段 */
    10:string trace_tag 
	
	/** 是否需要校验user_id和owner_id */
	7:i32 need_validate
	/** 用户id */
	8:string user_id
}

struct DeleteProductResponse
{
    1:string res="succ"
    2:i32 num
    /** 跟踪字段 */
    10:string trace_tag 
}
